﻿using Domain.Entitys.FG;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Domain.IRepositorys.FG
{
    public interface IFG_Finished_Goods_StoreRepository
    {
        /// <summary>
        /// 分页条件查询成品入库信息
        /// </summary>
        /// <param name="Warehouse_Code"></param>
        /// <param name="code"></param>
        /// <param name="currentPage"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        List<FG_Finished_Goods_Store_Info> Get_Finished_Goods_Store_Infos(string Warehouse_Code,string code,int currentPage,int pageSize,char auditStatus);

        /// <summary>
        /// 条件查询成品入库总数
        /// </summary>
        /// <param name="Warehouse_Code"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        Task<int> Get_Finished_Goods_StoreCountAsync(string Warehouse_Code, string code, char auditStatus);

        /// <summary>
        /// 添加成品入库信息及其明细
        /// </summary>
        /// <param name="fG_Finished_Goods_Store"></param>
        /// <param name="fG_Finished_Goods_Store_Details"></param>
        /// <returns></returns>
        Task<int> FG_Finished_Goods_StoreAddAsync(FG_Finished_Goods_Store fG_Finished_Goods_Store,List<FG_Finished_Goods_Store_Details> fG_Finished_Goods_Store_Details);

        /// <summary>
        /// 根据成品入库编号查询成品入库信息
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        Task<FG_Finished_Goods_Store> GetFG_Finished_Goods_StoreByCodeAsync(string code);

        /// <summary>
        /// 根据成品入库编号查询成品入库明细
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        Task<List<FG_Finished_Goods_Store_Details>> Get_Finished_Goods_Store_DetailsByCodeAsync(string code);

        /// <summary>
        /// 修改成品入库信息及其明细
        /// </summary>
        /// <param name="fG_Finished_Goods_Store"></param>
        /// <param name="fG_Finished_Goods_Store_Details"></param>
        /// <returns></returns>
        Task<int> FG_Finished_Goods_StoreUpdateAsync(FG_Finished_Goods_Store fG_Finished_Goods_Store, List<FG_Finished_Goods_Store_Details> fG_Finished_Goods_Store_Details);

        /// <summary>
        /// 逻辑删除成品入库信息
        /// </summary>
        /// <param name="fG_Finished_Goods_Store"></param>
        /// <returns></returns>
        Task<int> FG_Finished_Goods_StoreDelAsync(FG_Finished_Goods_Store fG_Finished_Goods_Store);

        /// <summary>
        /// 修改成品入库审核状态，修改库存出库数量
        /// </summary>
        /// <param name="fG_Finished_Goods_Store"></param>
        /// <returns></returns>
        Task<int> FG_Finished_Goods_StoreUpdateAuditAsync(FG_Finished_Goods_Store fG_Finished_Goods_Store);
    }
}
